#pragma once
#include<stdio.h>
#include<assert.h>
#include<stdlib.h>
typedef int LTDataType;

typedef struct ListNode
{
	struct ListNode* next;
	struct ListNode* prev;
	LTDataType data;
}ListNode;


//初始化
ListNode* ListInit();
//开辟
ListNode* BuyListNode(LTDataType x);
//打印
ListNode* ListPrint(ListNode* phead);
//释放
void ListClear(ListNode* phead);
void ListDestory(ListNode** phead);
//尾插
void ListPushBack(ListNode* phead, LTDataType x);
//尾删
void ListPopBack(ListNode* phead);
//头插
void ListPushPront(ListNode* phead, LTDataType x);
//头删
void ListPopPront(ListNode* phead);
//查找
ListNode* ListFind(ListNode* phead, LTDataType x);
//在pos前面插入x
void ListInsert(ListNode* pos, LTDataType x);
//删除pos前的结点
void ListErase(ListNode* pos);

